package metier;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.*;

import dao.GestionBD;

public class GestionSaisons {

	public GestionBD gd=GestionBD.getInstance();
	public ArrayList<dao.Saison> listsaisons = new ArrayList<dao.Saison>();
	
	public GestionSaisons() {
		
	}
	
	/**
	 * Fonction qui va stocker dans une array de saison toutes les saisons initialis�s par le g�rant
	 * @return le statut du vector (0 vide, 1 ok, -1 erreur)
	 */
	public int recupannee() {
		int res=0;
		Date jour= new Date();
		SimpleDateFormat formatdate = new SimpleDateFormat("yyyy");
		String query="SELECT * FROM saison WHERE Annee >= '"+formatdate.format(jour).toString()+"' Order by DateDebut";
		
		ResultSet rs =gd.traiterequete(query);
		try {
			if(!rs.next()){
				res=0;
			}
			else {
				
				 Date dateouverture = new Date();
				 Date datefinbasse1 = new Date();
				 Date datedebutmoyenne1 = new Date();
				 Date datefinmoyenne1 = new Date();
				 Date datedebuthaute = new Date();
				 Date datefinhaute = new Date();
				 Date datedebutmoyenne2 = new Date();
				 Date datefinmoyenne2 = new Date();
				 Date datedebutbasse2 = new Date();
				 Date datefermeture = new Date();
				 
				 int iterateur=1;
				 String verifannee="";
				 //rs.next();
			while(!rs.isAfterLast()){
				switch(iterateur) {
				case 1: dateouverture=rs.getDate("DateDebut"); datefinbasse1=rs.getDate("DateFin"); verifannee=rs.getString("Annee"); iterateur=iterateur+1; rs.next(); break;
				case 2: if(verifannee.equalsIgnoreCase(rs.getString("Annee"))) { datedebutmoyenne1=rs.getDate("DateDebut"); datefinmoyenne1=rs.getDate("DateFin"); iterateur=iterateur+1; rs.next(); } else{iterateur=1; res=-1;}break;
				case 3: if(verifannee.equalsIgnoreCase(rs.getString("Annee"))) { datedebuthaute=rs.getDate("DateDebut"); datefinhaute=rs.getDate("DateFin"); iterateur=iterateur+1; rs.next(); } else{iterateur=1; res=-1;}break;
				case 4: if(verifannee.equalsIgnoreCase(rs.getString("Annee"))) { datedebutmoyenne2=rs.getDate("DateDebut"); datefinmoyenne2=rs.getDate("DateFin"); iterateur=iterateur+1; rs.next();} else{iterateur=1; res=-1;}break;
				case 5: if(verifannee.equalsIgnoreCase(rs.getString("Annee"))) { datedebutbasse2=rs.getDate("DateDebut"); datefermeture=rs.getDate("DateFin"); iterateur=1;
				dao.Saison s = new dao.Saison(rs.getString("Annee"), dateouverture, datefinbasse1,datedebutmoyenne1, datefinmoyenne1, datedebuthaute, datefinhaute, datedebutmoyenne2, datefinmoyenne2, datedebutbasse2, datefermeture );
				listsaisons.add(s); rs.next(); 
				} else{iterateur=1;}break;
				default:
				}
			}
			res=1;
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		return res;
	}
}
